1 Transects

Plant Flowers Date lon lat ele Month Year julian
Glossoloma oblongicalyx 4 2015-10-19 -78.59093 0.130838 2270 October 2015 292
Gasteranthus quitensis 2 2016-10-17 -78.59770 0.120070 1940 October 2016 291
Kohleria affinis 1 2016-12-13 -78.59534 0.126746 2110 December 2016 348
Columnea ciliata 3 2014-02-27 -78.59934 0.116682 1960 February 2014 58
Columnea medicinalis 1 2014-04-23 -78.59372 0.128700 2130 April 2014 113
Drymonia teuscheri 3 2016-07-28 -78.59245 0.129393 2200 July 2016 210

2 Interactions

3 Phylogeny

4 Traits

Correlation among matrices

4.0.1 Total Flowers

4.1 Peak date

As range

4.2 Species elevation ranges

4.3 Flowering Data Matrix

5 Correlation in association matrices

ade4::mantel.rtest(as.dist(D),as.dist(Dtraits))
## Monte-Carlo test
## Call: ade4::mantel.rtest(m1 = as.dist(D), m2 = as.dist(Dtraits))
## 
## Observation: 0.462266 
## 
## Based on 99 replicates
## Simulated p-value: 0.01 
## Alternative hypothesis: greater 
## 
##     Std.Obs Expectation    Variance 
## 3.721614673 0.001911803 0.015301056
ade4::mantel.rtest(as.dist(Dint),as.dist(Dtraits))
## Monte-Carlo test
## Call: ade4::mantel.rtest(m1 = as.dist(Dint), m2 = as.dist(Dtraits))
## 
## Observation: 0.09988545 
## 
## Based on 99 replicates
## Simulated p-value: 0.28 
## Alternative hypothesis: greater 
## 
##       Std.Obs   Expectation      Variance 
##  0.7799621037 -0.0009348335  0.0167089369
ade4::mantel.rtest(as.dist(D),as.dist(Dint))
## Monte-Carlo test
## Call: ade4::mantel.rtest(m1 = as.dist(D), m2 = as.dist(Dint))
## 
## Observation: 0.1268094 
## 
## Based on 99 replicates
## Simulated p-value: 0.26 
## Alternative hypothesis: greater 
## 
##     Std.Obs Expectation    Variance 
##  0.70262285  0.00961582  0.02782038

6 Baseline model

Equal probability of flowering at anytime.

## sink("model/threshold_baseline.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
## 
##     #Observation of a flowering plant
##     Y[x] ~ dbern(p[x])
##     logit(p[x]) <- alpha[Plant[x]] 
##     
##     #Residuals
##     discrepancy[x] <- abs(Y[x] - p[x])
##     
##     #Assess Model Fit
##     Ynew[x] ~ dbern(p[x])
##     discrepancy.new[x]<-abs(Ynew[x] - p[x])
##     }
##     
##     
##     #Sum discrepancy
##     fit<-sum(discrepancy)/Nobs
##     fitnew<-sum(discrepancy.new)/Nobs
##     
##     #Prediction
##     
##     for(x in 1:Npreds){
##     #predict value
##     
##     #Observation - probability of flowering
##     prediction[x] ~ dbern(p_new[x])
##     logit(p_new[x])<-alpha[PredPlant[x]]
##     
##     #predictive error
##     pred_error[x] <- abs(Ypred[x] - p_new[x])
##     }
##     
##     
##     #Predictive Error
##     fitpred<-sum(pred_error)/Npreds
##     
##     #Priors
##     
##     #Species level priors
##     
##     for (j in 1:Plants){
##     
##     #Intercept flowering probability
##     alpha[j] ~ dnorm(0,0.386)
##     
##     } 
## 
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 2548
##    Unobserved stochastic nodes: 3164
##    Total graph size: 14644
## 
## Initializing model

7 Get Chains

7.0.1 Evaluate convergence

7.0.2 Posterior estimates

8 Baseline transect model

Equal probability of flowering per elevation

## sink("model/threshold_baseline_site.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
##     
##     #Observation of a flowering plant
##     Y[x] ~ dbern(p[x])
##     logit(p[x]) <- alpha[Plant[x],Site[x]] 
##     
##     #Residuals
##     discrepancy[x] <- abs(Y[x] - p[x])
##     
##     #Assess Model Fit
##     Ynew[x] ~ dbern(p[x])
##     discrepancy.new[x]<-abs(Ynew[x] - p[x])
##     }
##     
##     
##     #Sum discrepancy
##     fit<-sum(discrepancy)/Nobs
##     fitnew<-sum(discrepancy.new)/Nobs
##     
##     #Prediction
##     
##     for(x in 1:Npreds){
##     #predict value
##     
##     #Observation - probability of flowering
##     prediction[x] ~ dbern(p_new[x])
##     logit(p_new[x])<-alpha[PredPlant[x],NewSite[x]]
##     
##     #predictive error
##     pred_error[x] <- abs(Ypred[x] - p_new[x])
##     }
##     
##     
##     #Predictive Error
##     fitpred<-sum(pred_error)/Npreds
##     
##     #Priors
##     
##     #Species level priors
##     
##     for(i in 1:Sites){
##     for (j in 1:Plants){
##     
##     #Intercept flowering probability
##     alpha[j,i] ~ dnorm(0,0.386)
##     
##     } 
##     }
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 2548
##    Unobserved stochastic nodes: 3234
##    Total graph size: 18143
## 
## Initializing model

9 Get Chains

9.0.1 Evaluate convergence

9.0.2 Posterior estimates

10 Phylogeny

10.1 Attraction

## sink("model/threshold_attraction.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
##     
##     #Observation of a flowering plant
##     Y[x] ~ dbern(p[x])
##     logit(p[x]) <-  alpha[Plant[x]] + e[Plant[x],Site[x],Month[x]]
##     
##     #Residuals
##     discrepancy[x] <- abs(Y[x] - p[x])
##     
##     #Assess Model Fit
##     Ynew[x] ~ dbern(p[x])
##     discrepancy.new[x]<-abs(Ynew[x] - p[x])
##     }
##     
##     #Sum discrepancy
##     fit<-sum(discrepancy)/Nobs
##     fitnew<-sum(discrepancy.new)/Nobs
##     
##     #Prediction
##     
##     for(x in 1:Npreds){
##     #predict value
##     
##     #Observation - probability of flowering
##     prediction[x] ~ dbern(p_new[x])
##     logit(p_new[x])<- alpha[NewPlant[x]] + e[NewPlant[x],NewSite[x],NewMonth[x]]
##     
##     #predictive error
##     pred_error[x] <- abs(Ypred[x] - p_new[x])
##     }
##     
##     #Predictive Error
##     fitpred<-sum(pred_error)/Npreds
##     
##     #########################
##     #autocorrelation in error
##     #########################
##     
##     #For each of observation
##     for(y in 1:Sites){
##     for(x in 1:Months){
##     e[1:Plants,y,x] ~ dmnorm(zeros,tauC[,])
##     }
##     }
## 
##     ##covariance among similiar species
##     for(i in 1:Plants){
##     for(j in 1:Plants){
##     C[i,j] = exp(-lambda_cov * D[i,j])
##     }
##     }
##     
##     ## Covert variance to precision for each parameter, allow omega to shrink to identity matrix
##     vCov = omega*C[,] + (1-omega) * I
##     tauC=inverse(vCov*gamma)
##     
##     #Priors
##     
##     #Species level priors
##     
##     for (j in 1:Plants){
##     
##     #Intercept flowering probability
##     alpha[j] ~ dnorm(0,0.386)
##     
##     } 
##     #Autocorrelation priors
##     gamma = 1
##     
##     #Strength of covariance decay
##     lambda_cov = 2
##     omega  = 1
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 2548
##    Unobserved stochastic nodes: 3236
##    Total graph size: 26804
## 
## Initializing model

11 Get Chains

11.0.1 Evaluate convergence

11.0.2 Posterior estimates

11.1 Effect of phylogenetic attraction

11.2 Repulsion

## sink("model/threshold_repulsion.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
##     
##     #Observation of a flowering plant
##     Y[x] ~ dbern(p[x])
##     logit(p[x]) <-  alpha[Plant[x]] + e[Plant[x],Site[x],Month[x]]
##     
##     #Residuals
##     discrepancy[x] <- abs(Y[x] - p[x])
##     
##     #Assess Model Fit
##     Ynew[x] ~ dbern(p[x])
##     discrepancy.new[x]<-abs(Ynew[x] - p[x])
##     }
##     
##     
##     #Sum discrepancy
##     fit<-sum(discrepancy)/Nobs
##     fitnew<-sum(discrepancy.new)/Nobs
##     
##     #Prediction
##     
##     for(x in 1:Npreds){
##     #predict value
##     
##     #Observation - probability of flowering
##     prediction[x] ~ dbern(p_new[x])
##     logit(p_new[x])<- alpha[NewPlant[x]] + e[NewPlant[x],NewSite[x],NewMonth[x]]
##     
##     #predictive error
##     pred_error[x] <- abs(Ypred[x] - p_new[x])
##     }
##     
##     #Predictive Error
##     fitpred<-sum(pred_error)/Npreds
##     
##     #########################
##     #autocorrelation in error
##     #########################
##     
##     #For each of observation
##     for(x in 1:Months){
##     for(y in 1:Sites){
##     e[1:Plants,y,x] ~ dmnorm(zeros,tauC[,])
##     }
##     }
##     ##covariance among similiar species
##     for(i in 1:Plants){
##     for(j in 1:Plants){
##     C[i,j] = exp(-lambda_cov * D[i,j])
##     }
##     }
##     
##     ## Covert variance to precision for each parameter, allow omega to shrink to identity matrix
##     vCov = omega*C[,] + (1-omega) * I
##     tauC=vCov*gamma
##     
##     #Priors
##     
##     #Species level priors
##     
##     for (j in 1:Plants){
##     
##     #Intercept flowering probability
##     alpha[j] ~ dnorm(0,0.386)
##     
##     } 
##     #Autocorrelation priors
##     gamma = 10
##     
##     #Strength of covariance decay
##     lambda_cov = 1
##     omega = 1
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 2548
##    Unobserved stochastic nodes: 3236
##    Total graph size: 26803
## 
## Initializing model

12 Get Chains

12.0.1 Evaluate convergence

12.0.2 Posterior estimates

12.1 Effect of phylogenetic repulsion

13 Traits

13.1 Trait Attraction

## sink("model/threshold_attraction.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
##     
##     #Observation of a flowering plant
##     Y[x] ~ dbern(p[x])
##     logit(p[x]) <-  alpha[Plant[x]] + e[Plant[x],Site[x],Month[x]]
##     
##     #Residuals
##     discrepancy[x] <- abs(Y[x] - p[x])
##     
##     #Assess Model Fit
##     Ynew[x] ~ dbern(p[x])
##     discrepancy.new[x]<-abs(Ynew[x] - p[x])
##     }
##     
##     #Sum discrepancy
##     fit<-sum(discrepancy)/Nobs
##     fitnew<-sum(discrepancy.new)/Nobs
##     
##     #Prediction
##     
##     for(x in 1:Npreds){
##     #predict value
##     
##     #Observation - probability of flowering
##     prediction[x] ~ dbern(p_new[x])
##     logit(p_new[x])<- alpha[NewPlant[x]] + e[NewPlant[x],NewSite[x],NewMonth[x]]
##     
##     #predictive error
##     pred_error[x] <- abs(Ypred[x] - p_new[x])
##     }
##     
##     #Predictive Error
##     fitpred<-sum(pred_error)/Npreds
##     
##     #########################
##     #autocorrelation in error
##     #########################
##     
##     #For each of observation
##     for(y in 1:Sites){
##     for(x in 1:Months){
##     e[1:Plants,y,x] ~ dmnorm(zeros,tauC[,])
##     }
##     }
## 
##     ##covariance among similiar species
##     for(i in 1:Plants){
##     for(j in 1:Plants){
##     C[i,j] = exp(-lambda_cov * D[i,j])
##     }
##     }
##     
##     ## Covert variance to precision for each parameter, allow omega to shrink to identity matrix
##     vCov = omega*C[,] + (1-omega) * I
##     tauC=inverse(vCov*gamma)
##     
##     #Priors
##     
##     #Species level priors
##     
##     for (j in 1:Plants){
##     
##     #Intercept flowering probability
##     alpha[j] ~ dnorm(0,0.386)
##     
##     } 
##     #Autocorrelation priors
##     gamma = 1
##     
##     #Strength of covariance decay
##     lambda_cov = 2
##     omega  = 1
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 2548
##    Unobserved stochastic nodes: 3236
##    Total graph size: 26960
## 
## Initializing model

14 Get Chains

14.0.1 Evaluate convergence

14.0.2 Posterior estimates

14.1 Effect of trait attraction

14.2 Repulsion

## sink("model/threshold_repulsion.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
##     
##     #Observation of a flowering plant
##     Y[x] ~ dbern(p[x])
##     logit(p[x]) <-  alpha[Plant[x]] + e[Plant[x],Site[x],Month[x]]
##     
##     #Residuals
##     discrepancy[x] <- abs(Y[x] - p[x])
##     
##     #Assess Model Fit
##     Ynew[x] ~ dbern(p[x])
##     discrepancy.new[x]<-abs(Ynew[x] - p[x])
##     }
##     
##     
##     #Sum discrepancy
##     fit<-sum(discrepancy)/Nobs
##     fitnew<-sum(discrepancy.new)/Nobs
##     
##     #Prediction
##     
##     for(x in 1:Npreds){
##     #predict value
##     
##     #Observation - probability of flowering
##     prediction[x] ~ dbern(p_new[x])
##     logit(p_new[x])<- alpha[NewPlant[x]] + e[NewPlant[x],NewSite[x],NewMonth[x]]
##     
##     #predictive error
##     pred_error[x] <- abs(Ypred[x] - p_new[x])
##     }
##     
##     #Predictive Error
##     fitpred<-sum(pred_error)/Npreds
##     
##     #########################
##     #autocorrelation in error
##     #########################
##     
##     #For each of observation
##     for(x in 1:Months){
##     for(y in 1:Sites){
##     e[1:Plants,y,x] ~ dmnorm(zeros,tauC[,])
##     }
##     }
##     ##covariance among similiar species
##     for(i in 1:Plants){
##     for(j in 1:Plants){
##     C[i,j] = exp(-lambda_cov * D[i,j])
##     }
##     }
##     
##     ## Covert variance to precision for each parameter, allow omega to shrink to identity matrix
##     vCov = omega*C[,] + (1-omega) * I
##     tauC=vCov*gamma
##     
##     #Priors
##     
##     #Species level priors
##     
##     for (j in 1:Plants){
##     
##     #Intercept flowering probability
##     alpha[j] ~ dnorm(0,0.386)
##     
##     } 
##     #Autocorrelation priors
##     gamma = 10
##     
##     #Strength of covariance decay
##     lambda_cov = 1
##     omega = 1
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 2548
##    Unobserved stochastic nodes: 3236
##    Total graph size: 26959
## 
## Initializing model

15 Get Chains

15.0.1 Evaluate convergence

15.0.2 Posterior estimates

15.1 Effect of trait repulsion

16 Interaction

16.1 Attraction

## sink("model/threshold_attraction.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
##     
##     #Observation of a flowering plant
##     Y[x] ~ dbern(p[x])
##     logit(p[x]) <-  alpha[Plant[x]] + e[Plant[x],Site[x],Month[x]]
##     
##     #Residuals
##     discrepancy[x] <- abs(Y[x] - p[x])
##     
##     #Assess Model Fit
##     Ynew[x] ~ dbern(p[x])
##     discrepancy.new[x]<-abs(Ynew[x] - p[x])
##     }
##     
##     #Sum discrepancy
##     fit<-sum(discrepancy)/Nobs
##     fitnew<-sum(discrepancy.new)/Nobs
##     
##     #Prediction
##     
##     for(x in 1:Npreds){
##     #predict value
##     
##     #Observation - probability of flowering
##     prediction[x] ~ dbern(p_new[x])
##     logit(p_new[x])<- alpha[NewPlant[x]] + e[NewPlant[x],NewSite[x],NewMonth[x]]
##     
##     #predictive error
##     pred_error[x] <- abs(Ypred[x] - p_new[x])
##     }
##     
##     #Predictive Error
##     fitpred<-sum(pred_error)/Npreds
##     
##     #########################
##     #autocorrelation in error
##     #########################
##     
##     #For each of observation
##     for(y in 1:Sites){
##     for(x in 1:Months){
##     e[1:Plants,y,x] ~ dmnorm(zeros,tauC[,])
##     }
##     }
## 
##     ##covariance among similiar species
##     for(i in 1:Plants){
##     for(j in 1:Plants){
##     C[i,j] = exp(-lambda_cov * D[i,j])
##     }
##     }
##     
##     ## Covert variance to precision for each parameter, allow omega to shrink to identity matrix
##     vCov = omega*C[,] + (1-omega) * I
##     tauC=inverse(vCov*gamma)
##     
##     #Priors
##     
##     #Species level priors
##     
##     for (j in 1:Plants){
##     
##     #Intercept flowering probability
##     alpha[j] ~ dnorm(0,0.386)
##     
##     } 
##     #Autocorrelation priors
##     gamma = 1
##     
##     #Strength of covariance decay
##     lambda_cov = 2
##     omega  = 1
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 2548
##    Unobserved stochastic nodes: 3236
##    Total graph size: 26960
## 
## Initializing model

16.1.1 Evaluate convergence

16.1.2 Posterior estimates

16.2 Effect of interaction attraction

16.3 Repulsion

## sink("model/threshold_repulsion.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
##     
##     #Observation of a flowering plant
##     Y[x] ~ dbern(p[x])
##     logit(p[x]) <-  alpha[Plant[x]] + e[Plant[x],Site[x],Month[x]]
##     
##     #Residuals
##     discrepancy[x] <- abs(Y[x] - p[x])
##     
##     #Assess Model Fit
##     Ynew[x] ~ dbern(p[x])
##     discrepancy.new[x]<-abs(Ynew[x] - p[x])
##     }
##     
##     
##     #Sum discrepancy
##     fit<-sum(discrepancy)/Nobs
##     fitnew<-sum(discrepancy.new)/Nobs
##     
##     #Prediction
##     
##     for(x in 1:Npreds){
##     #predict value
##     
##     #Observation - probability of flowering
##     prediction[x] ~ dbern(p_new[x])
##     logit(p_new[x])<- alpha[NewPlant[x]] + e[NewPlant[x],NewSite[x],NewMonth[x]]
##     
##     #predictive error
##     pred_error[x] <- abs(Ypred[x] - p_new[x])
##     }
##     
##     #Predictive Error
##     fitpred<-sum(pred_error)/Npreds
##     
##     #########################
##     #autocorrelation in error
##     #########################
##     
##     #For each of observation
##     for(x in 1:Months){
##     for(y in 1:Sites){
##     e[1:Plants,y,x] ~ dmnorm(zeros,tauC[,])
##     }
##     }
##     ##covariance among similiar species
##     for(i in 1:Plants){
##     for(j in 1:Plants){
##     C[i,j] = exp(-lambda_cov * D[i,j])
##     }
##     }
##     
##     ## Covert variance to precision for each parameter, allow omega to shrink to identity matrix
##     vCov = omega*C[,] + (1-omega) * I
##     tauC=vCov*gamma
##     
##     #Priors
##     
##     #Species level priors
##     
##     for (j in 1:Plants){
##     
##     #Intercept flowering probability
##     alpha[j] ~ dnorm(0,0.386)
##     
##     } 
##     #Autocorrelation priors
##     gamma = 10
##     
##     #Strength of covariance decay
##     lambda_cov = 1
##     omega = 1
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 2548
##    Unobserved stochastic nodes: 3236
##    Total graph size: 26959
## 
## Initializing model

17 Get Chains

17.0.1 Evaluate convergence

17.0.2 Posterior estimates

17.1 Effect of interaction repulsion

18 Model Comparison

18.0.1 E: The effect of autocorrelation

19 P(Flowering)

# One example

Glossoloma purpureum

20 By site

20.1 Alpha: Species specific flowering rate

20.2 Omega: The magnitude of the effect of autocorrelation on mean flowering occurrence

20.3 Gamma: The variance of the effect of autocorrelation on mean flowering occurrence

20.4 Lambda: The decay in autocorrelation effect

20.5 Decay in autocorrelation effect

21 Model Fit

21.1 Bayesian pvalue

## # A tibble: 8 x 2
##   Model                       p
##   <chr>                   <dbl>
## 1 baseline                  0.8
## 2 baseline_site             1  
## 3 interaction_attraction    1  
## 4 interaction_repulsion     1  
## 5 phylogenetic_attraction   1  
## 6 phylogenetic_repulsion    1  
## 7 trait_attraction          0.9
## 8 trait_repulsion           1

Without baseline

## # A tibble: 7 x 2
##   Model                       p
##   <chr>                   <dbl>
## 1 baseline_site             1  
## 2 interaction_attraction    1  
## 3 interaction_repulsion     1  
## 4 phylogenetic_attraction   1  
## 5 phylogenetic_repulsion    1  
## 6 trait_attraction          0.9
## 7 trait_repulsion           1

21.2 Model Fit

Model mean lower upper
interaction_repulsion 0.2419828 0.2251827 0.2745795
trait_attraction 0.2295758 0.2130084 0.2700281
phylogenetic_attraction 0.2262416 0.2111530 0.2630880
phylogenetic_repulsion 0.2223203 0.2059804 0.2568119
trait_repulsion 0.2146673 0.2011630 0.2507881
interaction_attraction 0.2143445 0.2007667 0.2520629
baseline_site 0.2013130 0.1982707 0.2062034

21.2.1 Without baseline

21.3 By Species

21.3.1 Without baseline

21.3.2 Zoom in

22 Prediction

22.0.1 Tables

Model mean lower upper
interaction_repulsion 0.2491073 0.2312657 0.2826222
baseline 0.2444993 0.2350229 0.2559249
trait_attraction 0.2403138 0.2203743 0.2868214
phylogenetic_attraction 0.2384491 0.2194833 0.2811207
phylogenetic_repulsion 0.2345271 0.2180863 0.2707964
trait_repulsion 0.2335044 0.2185556 0.2721741
interaction_attraction 0.2294894 0.2142321 0.2661119
baseline_site 0.2152432 0.2114810 0.2191240

22.0.2 Flowering Rates among models

Example prediction

23 Flowering correlations in predictions

Grab an example Drymonia teuscheri v Drymonia collegarum

## # A tibble: 16 x 3
## # Groups:   Model [8]
##    Model                   Plant                mean
##    <chr>                   <fct>               <dbl>
##  1 baseline_site           Drymonia collegarum 0.179
##  2 trait_repulsion         Drymonia collegarum 0.195
##  3 phylogenetic_repulsion  Drymonia collegarum 0.196
##  4 interaction_attraction  Drymonia collegarum 0.218
##  5 trait_attraction        Drymonia collegarum 0.233
##  6 phylogenetic_attraction Drymonia collegarum 0.233
##  7 baseline                Drymonia collegarum 0.237
##  8 interaction_repulsion   Drymonia collegarum 0.241
##  9 baseline_site           Drymonia teuscheri  0.198
## 10 phylogenetic_repulsion  Drymonia teuscheri  0.220
## 11 trait_repulsion         Drymonia teuscheri  0.236
## 12 interaction_attraction  Drymonia teuscheri  0.243
## 13 phylogenetic_attraction Drymonia teuscheri  0.257
## 14 trait_attraction        Drymonia teuscheri  0.269
## 15 interaction_repulsion   Drymonia teuscheri  0.275
## 16 baseline                Drymonia teuscheri  0.277
D["Drymonia teuscheri","Drymonia collegarum"]
## [1] 0.02974
Dtraits["Drymonia teuscheri","Drymonia collegarum"]
## [1] 0.04191869
Dint["Drymonia teuscheri","Drymonia collegarum"]
## [1] 0.7483344

Logit E

inv.logit E

## # A tibble: 6 x 4
## # Groups:   Model [6]
##   Model                   Var1               Var2            Correlation_E
##   <chr>                   <fct>              <fct>                   <dbl>
## 1 interaction_attraction  Drymonia teuscheri Drymonia colle…         0.255
## 2 interaction_repulsion   Drymonia teuscheri Drymonia colle…        -0.441
## 3 phylogenetic_attraction Drymonia teuscheri Drymonia colle…         0.963
## 4 phylogenetic_repulsion  Drymonia teuscheri Drymonia colle…        -0.957
## 5 trait_attraction        Drymonia teuscheri Drymonia colle…         0.954
## 6 trait_repulsion         Drymonia teuscheri Drymonia colle…        -0.966
## # A tibble: 8 x 4
## # Groups:   Model [8]
##   Model                   Var1               Var2            Correlation_P
##   <chr>                   <fct>              <fct>                   <dbl>
## 1 baseline                Drymonia teuscheri Drymonia colle…        NA    
## 2 baseline_site           Drymonia teuscheri Drymonia colle…        -0.197
## 3 interaction_attraction  Drymonia teuscheri Drymonia colle…         0.139
## 4 interaction_repulsion   Drymonia teuscheri Drymonia colle…        -0.385
## 5 phylogenetic_attraction Drymonia teuscheri Drymonia colle…         0.956
## 6 phylogenetic_repulsion  Drymonia teuscheri Drymonia colle…        -0.757
## 7 trait_attraction        Drymonia teuscheri Drymonia colle…         0.944
## 8 trait_repulsion         Drymonia teuscheri Drymonia colle…        -0.791
## # A tibble: 8 x 4
## # Groups:   Model [8]
##   Model                   Var1               Var2         Correlation_Ynew
##   <chr>                   <fct>              <fct>                   <dbl>
## 1 baseline                Drymonia teuscheri Drymonia co…               NA
## 2 baseline_site           Drymonia teuscheri Drymonia co…               NA
## 3 interaction_attraction  Drymonia teuscheri Drymonia co…               NA
## 4 interaction_repulsion   Drymonia teuscheri Drymonia co…               NA
## 5 phylogenetic_attraction Drymonia teuscheri Drymonia co…               NA
## 6 phylogenetic_repulsion  Drymonia teuscheri Drymonia co…               NA
## 7 trait_attraction        Drymonia teuscheri Drymonia co…               NA
## 8 trait_repulsion         Drymonia teuscheri Drymonia co…               NA

24 Figures for the paper

25 Figure 1

Flowering patterns

26 Example Flowering patterns

27 Figure 2 Phylogeny

28 Figure 3

Association Matrices

Decay pattern

29 Figure 4

Model Fit and Prediction Fit

Supplamental figures